#!/bin/sh -
#
# $Id$
#
# Run the DB Java API test suite.
# Alternatively supply the class name for an individual test
# case and have that run.

# NOTES:
# This test requires one JAR not included with the Berkeley DB
# distribution:  JUnit (junit.jar) I've been using the 8/31/2002 version
# of JUnit.  You can download this JAR from http://jakarta.apache.org/
#
# JUNIT_JAR=/Users/gburd/Unix/opt/junit/junit.jar

[ "x$JUNIT_JAR" = "x" ] && {
	echo 'FAIL: unset environment variable JUNIT_JAR for junit.jar.'
	exit 1
}

[ -f $JUNIT_JAR ] || {
	echo 'FAIL: JUNIT_JAR not a valid path to the junit.jar.'
	exit 1
}

case `uname` in
*CYGWIN*)
  CP_SEP=";"
  d="../../build_windows/Win32/Debug"
  DB_LIB_DIR="$d"
  PATH="../../build_windows/Win32/Debug:$PATH"
  export PATH;;
*)
  CP_SEP=":"
  d="../../build_unix/"
  DB_LIB_DIR="$d/.libs"
esac

REQUIRED_JARS=$JUNIT_JAR
DB_JAR=$d/db.jar
export DB_JAR
export REQUIRED_JARS
export CP_SEP
export DB_LIB_DIR

# Build the tests.

make clean

[ -f ./dbtest.jar ] || (make dbtest.jar) || {
	echo 'FAIL: unable to find or build dbtest.jar'
	exit 1
}

# Run the tests.

if [ -n "$1" ]
then
    echo "Running: $1"
    java -Xcheck:jni -Djava.library.path=$DB_LIB_DIR -cp "$REQUIRED_JARS$CP_SEP$DB_JAR$CP_SEP./dbtest.jar" org.junit.runner.JUnitCore $1

else

    for f in `find classes -name "*Test.class"`; do
        c=`echo "$f" | sed -e 's/classes\///' -e 's/\.class//' -e 's/\//./g'`
        echo "Running: $c"
        if java -Xcheck:jni -Djava.library.path=$DB_LIB_DIR -cp "$REQUIRED_JARS$CP_SEP$DB_JAR$CP_SEP./dbtest.jar" org.junit.runner.JUnitCore $c ; then
                :
        else
            echo "FAIL: test program failed"
    #        exit 1
        fi
    done
fi
exit 0
